<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id="demo">
        <p>firstName: <input type="text" name="" v-model="firstName"></p>
        <p>lastName: <input type="text" name="" v-model="lastName"></p>
        <p>fullName: {{fullName}}</p>
        <p>fullName: {{fullName}}</p>
        <p>fullName: {{fullName}}</p>
        <p>fullName: {{fullName}}</p>
        <p>fullName: {{fullName}}</p>
        <p>fullName: {{fullName}}</p>
    </div>
    <script>
        /**
         * 计算属性一般我们只用的他值，很少去修改它的值。所以，计算属性只使用get方法比较多。
         * 
         */
        new Vue({
            el: '#demo',
            data: {
                firstName:'zhang',
                lastName:'san'
            },
            computed:{
                // 如果只使用getter，不用setter，那么计算属性可以简写, 直接定义成函数，该函数就是配置中的getter
                fullName(){
                    /**
                     *  计算属性可以进行数据的缓存，如果页面中多次调用计算属性的值，那么只有第一次执行getter，并将计算的结果缓存，后面在读计算属性，不会重复调用getter，而是读取缓存的值，直接显示
                     * 
                     */
                    console.log('计算属性getter执行了')
                    return this.firstName[0].toUpperCase() + this.firstName.slice(1) + '-' + this.lastName
                }
            }

        })
    </script>
</body>

</html>